package com.koron.css2.systemManage.service;

import com.github.pagehelper.PageInfo;
import com.koron.css2.systemManage.bean.OrgUserBean;
import com.koron.css2.systemManage.bean.RoleBean;
import org.koron.ebs.mybatis.SessionFactory;

import java.util.List;

public interface IRoleService {
	
	/**
	 * 删除角色
	 * @param roleCode
	 */
	void deleteRole(String roleCode);
	
	/**
	 * 添加角色用户
	 * @param roleCode
	 * @param userCodeList
	 */
	void addRoleUser(String roleCode, List<OrgUserBean> users);
	
	/**
	 * 删除用户的角色
	 * @param account
	 */
	void deleteRoleUser(OrgUserBean user);
	
	/**
	 * 删除用户的单个角色
	 * @param roleCode
	 * @param account
	 */
	void deleteRoleAndUser(String roleCode, List<OrgUserBean> users);
	
	/**
	 * 添加角色
	 * @param role
	 */
	void addRole(RoleBean role);

	/**
	 * 获取当前应用的所有角色
	 * @param factory
	 * @param user
	 * @return
	 */
	List<RoleBean> listRole(String appId);
	
	/**
	 * 获取该用户的角色列表
	 * @param account
	 * @param appId
	 * @return
	 */
	List<RoleBean> listRoleByUser(OrgUserBean user, String appId);
	
	/**
	 * 获取该角色下的用户列表
	 * @param factory
	 * @param roleCode
	 * @param page
	 * @param pageCount
	 * @return
	 */
	PageInfo<OrgUserBean> listUserByRole(SessionFactory factory, String roleCode, int page , int pageCount);

}
